package com.xiangxiangjd.kj.papersstar.controller.api;


import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.xiangxiangjd.kj.papersstar.bean.Questionnaire;
import com.xiangxiangjd.kj.papersstar.bean.result.ResultPage;
import com.xiangxiangjd.kj.papersstar.controller.BaseController;
import com.xiangxiangjd.kj.papersstar.controller.entity.ApiCode;
import com.xiangxiangjd.kj.papersstar.controller.helper.$;
import com.xiangxiangjd.kj.papersstar.controller.model.ApiResultModel;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * <p>
 * 前端控制器
 * </p>
 *
 * @author 肖守凯
 * @since 2021-01-21
 */

@RestController
@RequestMapping("/api/questionnaire")
public class QuestionnaireApi extends BaseController {

    /**
     * 添加一个问卷
     */
    @PutMapping("putQuestionnaire")
//    @UserLoginToken
    public ApiResultModel putQuestionnaire(@RequestBody Questionnaire questionnaire) {
        return questionnaireService.addQuestionnaire(questionnaire);
    }

    /**
     * 获取一个问卷的所有 问题
     */
    @GetMapping("/getQuestionnaire/{questionnaireId}")
    public ApiResultModel getQuestionnaire(@PathVariable("questionnaireId") String questionnaireId) {
        Questionnaire byId = questionnaireService.getById(questionnaireId);
        if (byId == null) return $.error("该问卷不存在");
        if (byId.getDelFlag().equals("1")) return $.error("该问卷 未发布!");
        return $.success(ApiCode.success, ApiCode.success_msg, questionnaireService.getQuestionnaire(questionnaireId));
    }

    @GetMapping("getAll")
    public ResultPage getQuestionnaire(Integer page, Integer limit) {
        page = page == null ? 1 : page;
        limit = limit == null ? 10 : limit;
        return questionnaireService.findQuestionnaireByPage(page, limit, new Questionnaire());
    }

    /**
     * 查看个人创建的问卷列表
     */

    @GetMapping("getByUser/{userId}")
    public ApiResultModel<Object> getByUser(@PathVariable("userId") String userId) {
        QueryWrapper queryWrapper = new QueryWrapper();

        queryWrapper.eq("user_id", userId);


        List<Questionnaire> list = questionnaireService.list(queryWrapper);
        if (list.size() > 1) {
            return $.success(list);
        } else {
            return $.error("无创建问卷!");
        }
    }

    /**
     * 修改问卷状态
     *
     * @param questionnaireId
     * @return
     */
    @GetMapping("updateByUser/{questionnaireId}")
    public ApiResultModel<Object> updateByUser(@PathVariable("questionnaireId") String questionnaireId,
                                               @RequestParam("userId") String userId, @RequestParam("status") String status) {

        //条件
        Questionnaire questionnaire = new Questionnaire();
        questionnaire.setId(questionnaireId);
        questionnaire.setUserId(userId);
        //更新内容
        Questionnaire updateData = new Questionnaire();
        updateData.setStatus(status);//修改为发布状态
        boolean update = questionnaireService.update(updateData, new UpdateWrapper<>(questionnaire));

        if (!update) return $.error("发布失败请重新发布");

        return $.success("修改成功!");
    }

    /**
     * 搜索问卷
     */

    @GetMapping("searchQuestionnaire")
    public ResultPage searchQuestionnaire(
            @RequestParam(value = "value", required = false, defaultValue = "") String value, Integer page, Integer limit) {
        page = page == null ? 1 : page;
        limit = limit == null ? 10 : limit;

        Questionnaire questionnaire = new Questionnaire();
        questionnaire.setQuestionnaireTitle(value);

        ResultPage data = questionnaireService.findQuestionnaireByPage(page, limit, questionnaire);


        return data;
    }

    /**
     * 问卷docx 详细调查问卷 下载
     */

    private static final String URL_FILE = "D:\\project\\wordtest\\src\\main\\resources\\demo1.docx";//本地路径


    private static final String LINUX_URL_FILE = "/home/user-file/index/app/";//服务器路径


}
